#ifndef CONTROLADORLECTURACLIENTE_H_
#define CONTROLADORLECTURACLIENTE_H_

using namespace std;

#include "../../Modelo/ClaseModelo/Modelo.h"
#include "../../Controlador/InputServidor.h"
#include "../../Utils/Timer.h"
#include "../../Utils/Logger.h"
#include "../Socket.h"

#include <algorithm>
#include <sys/ioctl.h>

enum EstadoThreadLectura {
	LecturaCargando,
	LecturaCorriendo,
	LecturaInactiva,
	LecturaFin
};

class ControladorLecturaCliente {
	
	pair<pthread_t, EstadoThreadLectura> threadLectura;
	pthread_mutex_t mutexEstadoLectura;
	
	InputServidor* controlador;
	pthread_mutex_t mutexJugador;
	
	public:
	
	ControladorLecturaCliente(Punto posicionJugador, int tipoPersonaje, int pisoNivel, int anchoNivel, int altoNivel, int gravedad);
	~ControladorLecturaCliente();
	
	EstadoThreadLectura getEstadoLectura();
	void setEstadoLectura(EstadoThreadLectura estado);
	
	vector< pair<int, string> > getPuntajes();
	string CodificarPuntajes(vector< pair<int, string> > puntajes);
	
	InputServidor* getControlador();
	void LockJugador();
	void UnlockJugador();

};

#endif /* CONTROLADORESCRITURACLIENTE_H_ */
